class Solution
{
public:
    string modifyString(string s)
    {
        if (s == "?")
        {
            return "a";
        }
        else if (s.size() == 1)
        {
            return s;
        }
        int n = s.size();
        if (s[0] == '?')
        {
            if (s[1] == 'a')
            {
                s[0] = 'b';
            }
            else
            {
                s[0] = 'a';
            }
        }
        if (s[n - 1] == '?')
        {
            if (s[n - 2] == 'a')
            {
                s[n - 1] = 'b';
            }
            else
            {
                s[n - 1] = 'a';
            }
        }
        for (int i = 1; i < n - 1; ++i)
        {
            if (s[i] == '?')
            {
                if (s[i - 1] == 'a' || s[i + 1] == 'a')
                {
                    if (s[i - 1] == 'b' || s[i + 1] == 'b')
                    {
                        s[i] = 'c';
                    }
                    else
                    {
                        s[i] = 'b';
                    }
                }
                else
                {
                    s[i] = 'a';
                }
            }
        }
        return s;
    }
};